package com.yxym.interclass;
//显示局部内部类的使用
public class LocalInnerClass {
    public static void main(String[] args) {
        Outer2 outer2 = new Outer2();
        outer2.m1();
        System.out.println("Outer02的hashcode= " + outer2);
    }
}

class Outer2{//方法类
    private int n1 = 100;
    private void m2(){
        //私有方法
        System.out.println("Outer的m2()方法被调用...");
    }
//    public Outer2(int n1) {
//        this.n1 = n1;
//    }
    public void m1(){//方法
        //1.局部内部类是定义在外部类的局部位置，通常在方法
        //3.不能添加访问修饰符，但可以使用final修饰
        //4.作用域：仅仅在定义它的方法或代码中
        String name = "mem";
        final class Inner02{//局部内部类（还是个类）
            private int n1 = 200;
            //2.可以直接访问外部类的所有成员，包括私有的
            public void f1(){
                //5.局部内部类可以直接访问外部类的成员，n1，m2()
                //7.如果外部类和局部内部类成员重名时，默认就近原则
                System.out.println("n1= " + n1);
                System.out.println(Outer2.this.n1);
                System.out.println("Outer02.this.hashcode=" + Outer2.this);
                m2();
                System.out.println(name);
            }
        }
//        class Inter03 extends Inner02{
//
//        }
        //6.外部类在方法中，可以创建Inner02对象，然后调用方法即可
        Inner02 inner02 = new Inner02();
        inner02.f1();
    }
}